DevOps pipelines have increased agility in software development and deployment through fully or semi-automated processes in the cloud. In a DevOps cloud-based environment, a lot of different teams work together to develop software code. A DevOps environment brings about some notable challenges. Namely, since teams are constantly developing and deploying code often simultaneously, when errors occur it is a difficult process to ascertain which team(s) is/are causing the errors.
Further, software developers continuously improve the product quality and value by fixing errors and adding new functionality. An important question for teams practicing DevOps is: “Are we getting better at rapidly delivering high-quality code?” Due to the transient nature between development and information technology (IT) operations, determining the impact of code refreshes or error fixes to system performance is a challenge.
One way of correlating the code refreshes to the system performance is to examine incident reports. Incidents may result from errors introduced during development and deployment cycles. In other words, the deployment after the code refreshes can also cause incidents. There are multiple teams submitting code change requests independent of each other. Identifying the development teams that cause system failures helps to understand if the DevOps practices are implemented properly and make improvements in the process. Incidents may also result from external factors which have nothing to do with development and deployment cycles. All incidents in a production system are systematically recorded in the form of incident reports which are analyzed to determine the root causes.
The information available in the incident report, however, may not be sufficient to relate the incidents to a particular team. When incident reports do not have any indication of who caused the incident, alternative techniques are needed to determine the teams responsible for the incidents. Further, it is a time-consuming process to analyze each of the incident reports in detail which in a fast paced development environment can be a detriment.
Thus, techniques for effectively and rapidly assessing the source of errors in a DevOps environment and whether the team(s) responsible for the errors are getting better or worse at delivering changes would be desirable and can be of great value when prioritizing investments in a continuous delivery (CD) pipeline and/or other process improvements.